复数
标准库支持一族复数类型,采用的也是类似于在2.5.2节所描述 complex
类的方式。为了支持其标量可以是单精度浮点数(float
),双精度数(double
)等的复数,标准库提供的 complex
是一个模版:
template<class scalar> class complex
{
public:
complex(scalar re, scalar im);
// ...
};
它支持复数类型的常规算术运算和最常用的数学函数。例如,
// 取自<complex>的标准指数函数:
template<class C> complex<C> pow(const complex<C>&, int);
void f(complex<float> fl, complex<double> db)
{
complex<long double> ld = fl + sqrt(db);
db += fl * 3;
fl = pow(1/fl, 2);
// ...
}
更多细节参见22.5节。
🔚